Testability of Software Components
نویسنده
چکیده
The knowledge as to whether a software component is testable or not is important to the software engineering process: a program that is not easily testable may have to go through several iterations of program and test redesign. In this paper, we formally investigate the meaning of software testability. We define a new concept, domain testability, by applying the concepts of observability and controllability to software. Observability refers to the ease of determining if specified inputs affect the outputs; controllability refers to the ease of producing a specified output from a specified input. Observability and controllability properties are already used for assessing the testability of hardware components. A domain testable program is observable and controllable: it does not exhibit any test input-output inconsistencies. We discuss the domain testability properties of several programs that have been presented in the literature, and investigate the observability and controllability properties of several programming structures. We also define new testing metrics (that can be applied to programs or to functional specifications) that can be used to easily assess the level of effort required to modify a program so that it becomes domain testable. We also show how testability can be assessed from program specifications, and discuss an experiment that shows that it takes less time to build and test a program developed from a domain testable specification than a similar program developed from a non-domain testable specification. In the Appendix, domain testability is defined in terms of denotational semantics. AUTHOR Roy S. Freedman Formerly with Department of Computer Science Polytechnic University 333 Jay Street Brooklyn, New York 11201 Currently with Inductive Solutions, Inc. 380 Rector Place New York, New York 10280 To Appear in the IEEE Transactions on Software Engineering, Vol. 17, No. 6, June, 1991, pp. 553-563. Testability of Software Components
منابع مشابه
Bytecode-based Analysis for Increasing Class-Component Testability
Software testing attempts to reveal software faults by executing the program on input values and comparing the outputs from the execution with expected outputs. Testing software is easier when testability is high, so increasing testability allows the detection of faults to be done more efficiently. Component-based software is often constructed from third party software components. When this is ...
متن کاملIncreasing Class-Component Testability
Testability has many effects on software. In general, increasing testability makes detecting faults easier. However, increasing testability of third party software components is difficult because the source is usually not available. This paper introduces a method to increase component testability. This method helps a user test when the component is reused during integration. First, we analyze a...
متن کاملThe Self-Testing COTS Components (STECC) Strategy – a new form of improving component testability∗
Development of a software system from existing components can surely have various benefits, but can also entail a series of problems. One type of problems is caused by a limited exchange of information between the developer and user of a component. A limited exchange and thereby a lack of information can have various consequences, among them the requirement to test a component prior to its inte...
متن کاملForming Consensus on Testability in Software Developing Organizations
Testing is an important activity in all software development projects and organizations. Therefore, it is important that all parts of the organization have the same view on testing and testability of software components and systems. In this paper we study the view on testability by software engineers, software testers, and managers, using a questionnaire followed by interviews. The questionnair...
متن کاملFurther the Effectiveness of Software Testability Measure
Software testability is proposed to address the problem of increasing cost of test and the quality of software. Testability measure provides a quantified way to denote the testability of software. Since 1990s, many testability measure models are proposed to address the problem. By discussing the contradiction between domain testability and domain range ratio (DRR), a new testability measure, se...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Trans. Software Eng.
دوره 17 شماره
صفحات -
تاریخ انتشار 1991